Significant advances in presentation technologies have occurred in recent years. Workstations with sophisticated user interfaces--long the sole domain of engineers and scientists--now are finding application in the broader marketplace.
New presentation of software and standardization efforts have bolstered this migration to a larger commercial environment. X-Windows software from MIT and its X-Consortium are illustrative of such development. The combination of X-Windows with other standards, such as OSF/Motif. UNIX and C, has allowed application developers a new freedom from many platform issues and has enhanced the efficiency in the creation of user interface (UIs).
In spite of such strides in efficiency and much continuing work in X-Windows, one of the most time consuming tasks in creating working UIs has received little or no attention--the development of software to control the screens a user sees and the sequence with which those screens are presented. Throughout this disclosure, this type of software is referred to as navigational logic.
Currently, the only mechanism provided within X-Windows and many other environments to accomplish navigation is through what are generically referred to as "callback" routines. That mechanism provides a means of linking the processing of a function to an X-Event, such as a button push or the filling in of a field on the screen.
With callback functions it is possible to achieve certain navigational goals. For example, a callback might be executed from a button press in the current screen which unmaps that screen and presents another subsequent screen. The approach has value, but it becomes cumbersome when the navigational logic is more complex than simple screen-to-screen traversal.
1. Client/Server Architecture
Many modern system are based on a three-tier, client/server architecture in which work is distributed over a number of processors. At the first tier, users interface with the system through easy-to-use graphical screens presented on workstations (shown as Group 3 in FIG. 1). Significant savings in user efficiency can be realized with a graphical user interface (OUI) based on the X-Windows System and OSF/Motif standards.
Workstations are linked via Ethernet to servers at tier two which handle some data management tasks and communicate with other systems as shown in FIG. 1 (Group 2 in FIG. 1). Often, workstations and servers run under UNIX and software is generally written in the C programming language. Tier three consists of mainframe computers and timeshare systems which, for example, access corporate data repositories for customer records, service orders and other data.
2. Navigational Complexity in Modern Systems
In more advanced systems, the user is guided through complex transactions by the system. This factor is often critical to cost savings because it allows less experienced people to competently use the system. However, this user-friendly approach complicates the navigational aspects of the system.
The correct screen must appear to the user at the proper time without user intervention. At certain points in the transaction, however, the user must have substantial flexibility in choosing screens. Often, both of these requirements have to be met simultaneously with navigational logic. It is also often unnecessary to control which fields are available to a user or to impact the field-to-field flow.
Transactions often require at least one end, more frequently, two or three asynchronous accesses to tier three computers. During these sometimes lengthy excursions, certain screens are presented or are at least made available to users. This is often done so that the users can take any additional information from the customer which can logically be obtained prior to receiving a return response from the tier three computer. When results do come back, they often influence which screens must appear in the flow and possibly how the transaction must proceed from that point forward. The navigational logic must have the capability to handle these situations.
A second factor contributing to navigational complexity stems from the fact that many modern systems are to be implemented globally at a large number of locations. Each location has its own methods of doing business based on local demographics. Therefore, screen availability and order of presentation have to be controllable by the local user group. Often, to accomplish this, a table is periodically edited. The table is subsequently read by the system at start-up and the screens presented accordingly.
A third factor is the result of recent industry trends toward rapidly creating specialized services and bringing them to market quickly. Of course, part of bringing any service to market includes integrating the service into a company's operational support systems. System integration has traditionally been a slow process, but in recent years the need for faster integration has become much more evident.
For all the above-stated considerations, there is a need for a method which can accommodate more complex navigation and is more sophisticated than the use of callback functions provided by X-Windows. The new method for creating navigational logic must be efficient and responsive to transaction requirements, while providing features such as speed of development, maintainability and flexibility.